package com.huawang.mdesign.model.service.constant;

/**
 * @auther lairenmao
 * @date 2024/11/13
 * 元素校验规则key
 */
public class ElementCheckRuleKey {
    private ElementCheckRuleKey() {
    }

    /**
     * 接口模块的端口类型必须是接口模块校验规则
     */
    public static final String INTERFACE_BLOCK_INTERFACE_BLOCK_TYPED_PORTS_VALIDATOR = "interfaceBlockInterfaceBlockTypedPortsValidator";

    /**
     * 属性与参与者之间没有整体-部分的关系校验规则
     */
    public static final String PARTICIPANT_PROPERTY_AGGREGATION_KIND_NONE_VALIDATOR = "participantPropertyAggregationKindNoneValidator";

    /**
     * 流属性的类型应为值类型、模块或信号校验规则
     */
    public static final String FLOW_PROPERTY_RESTRICTED_TYPES_VALIDATOR = "flowPropertyRestrictedTypesValidator";

    /**
     * 测试用例的返回参数必须是验证类型校验规则
     */
    public static final String TEST_CASE_RETURN_VERDICT_KIND_VALIDATOR = "testCaseReturnVerdictKindValidator";

    /**
     * 代理端口的端口类型一定是接口模块校验规则
     */
    public static final String PROXY_PORT_INTERFACE_BLOCK_VALIDATOR = "proxyPortInterfaceBlockValidator";

    /**
     * 每个分配元素只能有一个分配目标校验规则
     */
    public static final String ALLOCATE_BINARY_VALIDATOR = "allocateBinaryValidator";

    /**
     * 代理端口的端口类型必须是代理端口校验规则
     */
    public static final String PROXY_PORT_SUB_PORTS_ARE_PROXY_PORTS_VALIDATOR = "proxyPortSubPortsAreProxyPortsValidator";

    /**
     * 接口模块不得拥有或继承行为、分类行为，或者用于其行为特征的方法校验规则
     */
    public static final String INTERFACE_BLOCK_NO_BEHAVIOR_VALIDATOR = "interfaceBlockNoBehaviorValidator";

    /**
     * 接口模块的复合属性只能是端口、值属性或流属性校验规则
     */
    public static final String INTERFACE_BLOCK_NO_PART_VALIDATOR = "interfaceBlockNoPartValidator";

    /**
     * 提供者构造型应是抽象需求的子类元素校验规则
     */
    public static final String VERIFY_SUPPLIER_IS_REQUIREMENT_VALIDATOR = "verifySupplierIsRequirementValidator";

    /**
     * 构造型为需求的类不能被用作其他模型元素的基类或父类校验规则
     */
    public static final String REQUIREMENT_NOT_A_TYPE_VALIDATOR = "requirementNotATypeValidator";

    /**
     * 接口模块类型的任何端口都应该设定它是否共轭的属性为假校验规则
     */
    public static final String INTERFACE_BLOCK_IS_CONJUGATED_NOT_USED_VALIDATOR = "interfaceBlockIsConjugatedNotUsedValidator";

    /**
     * 需求下的类必须也是需求校验规则
     */
    public static final String REQUIREMENT_NESTED_CLASSIFIERS_ARE_REQUIREMENTS_VALIDATOR = "requirementNestedClassifiersAreRequirementsValidator";

    /**
     * 若SysML模块或SysML值类型所拥有的属性类型是SysML值类型，属性的聚合属性必须是组合校验规则
     */
    public static final String BLOCK_VALUE_PROPERTIES_COMPOSITE_VALIDATOR = "blockValuePropertiesCompositeValidator";

    /**
     * 泛化值类型的必须是值类型校验规则
     */
    public static final String VALUE_TYPE_SPECIALIZATIONS_ARE_VALUE_TYPES_VALIDATOR = "valueTypeSpecializationsAreValueTypesValidator";

    /**
     * 绑定连接器的两端类型不同或不兼容校验规则
     */
    public static final String BINDING_CONNECTOR_COMPATIBLE_TYPES_VALIDATOR = "bindingConnectorCompatibleTypesValidator";

    /**
     * 使用模式下当前有分配关系构造型的泳道声明，泳道内的动作没有与块之间建立分配关系校验规则
     */
    public static final String USAGE_MODE_ALLOCATE_ACTIVITY_PARTITION_ACTIONS_ON_CLIENT_ENDS_VALIDATOR = "usageModeAllocateActivityPartitionActionsOnClientEndsValidator";

    /**
     * 定义模式下当前有分配关系构造型的泳道声明，泳道内的动作没有与块之间建立分配关系校验规则
     */
    public static final String DEFINITION_MODE_ALLOCATE_ACTIVITY_PARTITION_ACTIONS_ON_CLIENT_ENDS_VALIDATOR = "definitionModeAllocateActivityPartitionActionsOnClientEndsValidator";

    /**
     * 派生需求本身必须是一个需求元素校验规则
     */
    public static final String DERIVE_REQ_CLIENT_IS_REQUIREMENT_VALIDATOR = "deriveReqtClientIsRequirementValidator";

    /**
     * 模型元素以及元素间的关系没有被有效定义校验规则
     */
    public static final String ELEMENT_RELATION_VALIDATOR = "elementRelationValidator";
    /**
     * 属性值无效校验规则
     */
    public static final String PROPERTY_VALUE_VALIDATOR = "propertyValueValidator";

    /**
     * 被引用的元素无有效定义校验规则
     */
    public static final String REFERENCE_ELEMENT_VALIDATOR = "referenceElementValidator";

    /**
     * 父元素缺少必须的子元素校验规则
     */
    public static final String ELEMENT_INTEGRITY_VALIDATOR = "elementIntegrityValidator";

    /**
     * 共享模型非法引用校验规则
     */
    public static final String SHARED_ELEMENT_VALIDATOR = "sharedElementValidator";

    /**
     * 孤立模型命中校验规则
     */
    public static final String ISOLATED_MODEL_VALIDATOR = "isolatedModelValidator";


    /**
     * 元素重名校验
     */
    public static final String ELEMENT_DUPLICATE_NAME = "elementDuplicateName";
    /**
     * 能力角色类型必须是能力及其子类。
     */
    public static final String CAPABILITY_ROLE_TYPE_VALIDATOR = "CapabilityRoleTypeValidator";
    /**
     * 作战/业务角色类型必须是作战/业务代理的实现类。
     */
    public static final String OPERATIONAL_ROLE_TYPE_VALIDATOR = "OperationalRoleTypeValidator";
    /**
     * 服务角色的类型必须是服务及其子类
     */
    public static final String SERVICE_ROLE_TYPE_VALIDATOR = "ServiceRoleTypeValidator";
    /**
     * 资源角色的类型必须是资源执行者及其子类。
     */
    public static final String RESOURCE_ROLE_TYPE_VALIDATOR = "ResourceRoleTypeValidator";
    /**
     * 作战/业务活动动作的行为必须是作战/业务活动及其子类。
     */
    public static final String OPERATIONAL_ACTIVITY_ACTION_BEHAVIOR_VALIDATOR = "OperationalActivityActionBehaviorValidator";
    /**
     * 项目活动动作的行为必须是项目活动及其子类。
     */
    public static final String PROJECT_ACTIVITY_ACTION_BEHAVIOR_VALIDATOR = "ProjectActivityActionBehaviorValidator";
    /**
     * 服务功能动作的行为必须是服务功能及其子类。
     */
    public static final String SERVICE_FUNCTION_ACTION_BEHAVIOR_VALIDATOR = "ServiceFunctionActionBehaviorValidator";

    /**
     * 功能动作的行为必须是服务功能及其子类。
     */
    public static final String FUNCTION_ACTIVITY_ACTION_BEHAVIOR_VALIDATOR = "FunctionActivityActionBehaviorValidator";

    /**
     * 作战/业务端口的类型必须是作战/业务接口及其子类。
     */
    public static final String OPERATIONAL_PORT_TYPE_VALIDATOR = "OperationalPortTypeValidator";

    /**
     * 资源端口的类型必须是资源接口及其子类。
     */
    public static final String RESOURCE_PORT_TYPE_VALIDATOR = "ResourcePortTypeValidator";


}
